1. Field of the Invention
The present invention relates to parsing data packets at a gateway node to a network in order to administer the network based on contents of the data packets passing through the gateway.
2. Description of the Related Art
Networks of general purpose computer systems and specialized devices connected by external communication links are well known and widely used in commerce. The networks often include one or more network devices that facilitate the passage of information between the computer systems and devices. A network node is a network device or computer or specialized device connected by the communication links. An end node is a node that is configured to originate or terminate communications over the network. An intermediate network node facilitates the passage of data between end nodes.
Some intermediate network nodes serve as gateways to networks or portions of networks of particular network service providers. Such a gateway node (called a gateway hereinafter) not only forwards data packets but also serves some other function for administration of the provider's network, such as limiting access to authorized users only. In addition, some intermediate network nodes serve as content gateways. Such a content gateway provides a function for administration of the network based on the contents of one or more data packets in a flow of data packets between the same two end nodes. Functions of content gateways include assessing portions of traffic due to different types of payloads, e.g., Web pages, file transfer, email, and streaming of audio and video contents, routing based on type of payload, and differential billing for different types of payloads, among other functions.
Such content gateways must parse the data in the payload of several data packets associated with each flow between the same two end nodes. Parsing involves interpreting the data in one or more payloads. Such parsing is quicker and easier when the packets are parsed in order, because the meaning of at least some data depends on its position in a flow of data packets. Several transport layer protocols, such as the Transmission Control Protocol (TCP) support ordering of data packets by including a sequence number in each data packet.
Currently, content gateways deal with data packets of a flow that arrive out of order by storing the out of order packets until the missing packet arrives. Data packets are not forwarded until they are parsed in order to prevent unauthorized use of the provider's network resources. When the missing data packet is received, parsing of the missing and out of order data packets is able to continue. These parsed data packets are then forwarded. A problem with this approach is that network throughput is significantly decreased in some circumstances, especially when incoming flows pass over a less reliable access network with frequent dropped packets.